{- fib :: Integer -> Integer
fib 0 = 0
fib 1 = 1
fib (n+2) = fib (n) + fib (n+1)-}

fib :: Integer -> Integer
fib 0 = 0
fib 1 = 1
fib n = h (n,0)

h :: Integer -> Integer -> Integer
h (a,b) | (a /= b) = (c = c + b)